package com.firexxx;

import com.sun.tools.javac.code.Type;

import java.io.Serializable;
import java.lang.System;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.AbstractQueue;
import java.util.ArrayList;
import java.util.concurrent.ArrayBlockingQueue;

public class GenericClassAssign {

    public static void main(String[] args) {
        ArrayList<Object> aaa = new ArrayList<String>();

        ArrayList<String> aa = new ArrayList<Integer>();

        //new出来的对象的泛型类型不会被覆盖到左值，因此a.add在引用消解的时候指向的是泛型上界是object
        ArrayList a = new ArrayList<String>();
        a.add(1);

        //b.add在visitselect进行方法引用消解的时候才会引用到实例化泛型的string，因此会报错
        ArrayList<String> b = new ArrayList<>();
        b.add(1);
    }
}
